package cn.coco.jf.fw.admin.sys.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.SqlPara;

import cn.coco.jf.fw.core.db.SysMenuTbl;
import cn.coco.jf.fw.core.db.SysPropTbl;
import cn.coco.jf.fw.core.db.SysPtnVerbTbl;
import cn.coco.jf.fw.admin.config.consts.SysConsts;
import cn.coco.jf.fw.admin.model.DictIntModel;
import cn.coco.jf.fw.admin.model.DictModel;

public class SysDao {
    /**
     * 检索所有数据
     * @return
     */
    public static Map<String, String> queryAllSysPropTblMap(){
        SqlPara sqlPara = SysPropTbl.dao.getSqlPara("cn.coco.jf.sys.sql.queryAllSysPropTbl");
        List<SysPropTbl> list = SysPropTbl.dao.find(sqlPara);
        
        Map<String, String> map = new HashMap<String,String>();
        
        for(SysPropTbl entity : list){
            map.put(entity.getPropName(), entity.getPropValue());
        }
        
        return map;
    }
    
    public static List<SysPtnVerbTbl> queryAllSysPtnVerbTbl(){
        SqlPara sqlPara = SysPtnVerbTbl.dao.getSqlPara("cn.coco.jf.sys.sql.queryAllSysPtnVerbTbl");
        return SysPtnVerbTbl.dao.find(sqlPara);
    }
    
    public static List<DictModel> queryDictModelByPtnType(String ptnType){
        Kv kv = Kv.by("ptnType", ptnType);
        SqlPara sqlPara = DictModel.dao.getSqlPara("cn.coco.jf.sys.sql.queryDictModelByPtnType", kv);
        return DictModel.dao.find(sqlPara);
    }
    
    // 获取用户菜单信息
    public static List<SysMenuTbl> querySysMenuTblListByRoleId(Integer roleId){
        Kv kv = Kv.by("roleId", roleId);
        SqlPara sqlPara = SysMenuTbl.dao.getSqlPara("cn.coco.jf.sys.sql.querySysMenuTblListByRoleId", kv);
        return SysMenuTbl.dao.find(sqlPara);
    }
    
    // 获取用户菜单信息
    public static List<SysMenuTbl> querySysMenuTblList(){
        SqlPara sqlPara = SysMenuTbl.dao.getSqlPara("cn.coco.jf.sys.sql.querySysMenuTblList");
        return SysMenuTbl.dao.find(sqlPara);
    }
    
    public static List<DictIntModel> queryNormalRoleDict(){
        Kv kv = Kv.by("delFlg", SysConsts.DEL_FLG_NORMAL);
        SqlPara sqlPara = DictIntModel.dao.getSqlPara("cn.coco.jf.sys.sql.queryNormalRoleDictAll", kv);
        return DictIntModel.dao.find(sqlPara);
    }
}
